<!-- HTML header for doxygen 1.8.18-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Ipopt: Ipopt::Observer Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
  $(document).ready(function() { init_search(); });
/* @license-end */
</script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
  extensions: ["tex2jax.js"],
  jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<link href="stylesheet.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 40px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Ipopt Documentation
   &#160;<!--span id="projectnumber">3.14.17</span-->
   </div>
  </td>
   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <span id="MSearchSelect"                onmouseover="return searchBox.OnSearchSelectShow()"                onmouseout="return searchBox.OnSearchSelectHide()">&#160;</span>
          <input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
          </span>
        </div>
</td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('classIpopt_1_1Observer.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>

<div class="header">
  <div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pri-methods">Private Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a> &#124;
<a href="#friends">Friends</a> &#124;
<a href="classIpopt_1_1Observer-members.html">List of all members</a>  </div>
  <div class="headertitle"><div class="title">Ipopt::Observer Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div></div>
</div><!--header-->
<div class="contents">

<p>Slight Variation of the <a class="el" href="classIpopt_1_1Observer.html" title="Slight Variation of the Observer Design Pattern.">Observer</a> Design Pattern.  
 <a href="classIpopt_1_1Observer.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="IpObserver_8hpp_source.html">IpObserver.hpp</a>&gt;</code></p>
<div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-0-trigger" src="closed.png" alt="+"/> Inheritance diagram for Ipopt::Observer:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="classIpopt_1_1Observer__inherit__graph.png" border="0" usemap="#aIpopt_1_1Observer_inherit__map" alt="Inheritance graph"/></div>
<map name="aIpopt_1_1Observer_inherit__map" id="aIpopt_1_1Observer_inherit__map">
<area shape="rect" title="Slight Variation of the Observer Design Pattern." alt="" coords="51,5,172,33"/>
<area shape="rect" href="classIpopt_1_1DependentResult.html" title="Templated class which stores one entry for the CachedResult class." alt="" coords="5,81,218,109"/>
<area shape="poly" title=" " alt="" coords="114,49,114,81,109,81,109,49"/>
</map>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-types" name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a828a9e0833e87e84bef75d05bf0a99b8" id="r_a828a9e0833e87e84bef75d05bf0a99b8"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classIpopt_1_1Observer.html#a828a9e0833e87e84bef75d05bf0a99b8">NotifyType</a> { <a class="el" href="classIpopt_1_1Observer.html#a828a9e0833e87e84bef75d05bf0a99b8aa99f42cc1404f26f7261dd53de56ff74">NT_All</a>
, <a class="el" href="classIpopt_1_1Observer.html#a828a9e0833e87e84bef75d05bf0a99b8a8ad0ad9fd7b8b6ac8d26ba3f4a9b5cae">NT_BeingDestroyed</a>
, <a class="el" href="classIpopt_1_1Observer.html#a828a9e0833e87e84bef75d05bf0a99b8a54af38bcdf18596ba847cbacd9232614">NT_Changed</a>
 }</td></tr>
<tr class="memdesc:a828a9e0833e87e84bef75d05bf0a99b8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enumeration specifying the type of notification.  <a href="classIpopt_1_1Observer.html#a828a9e0833e87e84bef75d05bf0a99b8">More...</a><br /></td></tr>
<tr class="separator:a828a9e0833e87e84bef75d05bf0a99b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td colspan="2"><div class="groupHeader">Constructors/Destructors</div></td></tr>
<tr class="memitem:acdd5593467a6a60be9ca42516766b3d9" id="r_acdd5593467a6a60be9ca42516766b3d9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classIpopt_1_1Observer.html#acdd5593467a6a60be9ca42516766b3d9">Observer</a> ()</td></tr>
<tr class="memdesc:acdd5593467a6a60be9ca42516766b3d9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default Constructor.  <br /></td></tr>
<tr class="separator:acdd5593467a6a60be9ca42516766b3d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6f33850447e2d64a0b1521d10924fb40" id="r_a6f33850447e2d64a0b1521d10924fb40"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classIpopt_1_1DependentResult.html">virtual</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classIpopt_1_1Observer.html#a6f33850447e2d64a0b1521d10924fb40">~Observer</a> ()</td></tr>
<tr class="memdesc:a6f33850447e2d64a0b1521d10924fb40"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor.  <br /></td></tr>
<tr class="separator:a6f33850447e2d64a0b1521d10924fb40"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-methods" name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:ad8a27925a917ba926d713ceaac3efd7d" id="r_ad8a27925a917ba926d713ceaac3efd7d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classIpopt_1_1DependentResult.html">void</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classIpopt_1_1Observer.html#ad8a27925a917ba926d713ceaac3efd7d">RequestAttach</a> (<a class="el" href="classIpopt_1_1Observer.html#a828a9e0833e87e84bef75d05bf0a99b8">NotifyType</a> <a class="el" href="classIpopt_1_1DependentResult.html">notify_type</a>, <a class="el" href="classIpopt_1_1DependentResult.html">const</a> <a class="el" href="classIpopt_1_1Subject.html">Subject</a> *<a class="el" href="classIpopt_1_1DependentResult.html">subject</a>)</td></tr>
<tr class="memdesc:ad8a27925a917ba926d713ceaac3efd7d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Derived classes should call this method to request an "Attach" to a <a class="el" href="classIpopt_1_1Subject.html" title="Slight Variation of the Observer Design Pattern (Subject part).">Subject</a>.  <br /></td></tr>
<tr class="separator:ad8a27925a917ba926d713ceaac3efd7d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7006c91bc2893aa7aaa03799820f76dd" id="r_a7006c91bc2893aa7aaa03799820f76dd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classIpopt_1_1DependentResult.html">void</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classIpopt_1_1Observer.html#a7006c91bc2893aa7aaa03799820f76dd">RequestDetach</a> (<a class="el" href="classIpopt_1_1Observer.html#a828a9e0833e87e84bef75d05bf0a99b8">NotifyType</a> <a class="el" href="classIpopt_1_1DependentResult.html">notify_type</a>, <a class="el" href="classIpopt_1_1DependentResult.html">const</a> <a class="el" href="classIpopt_1_1Subject.html">Subject</a> *<a class="el" href="classIpopt_1_1DependentResult.html">subject</a>)</td></tr>
<tr class="memdesc:a7006c91bc2893aa7aaa03799820f76dd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Derived classes should call this method to request a "Detach" to a <a class="el" href="classIpopt_1_1Subject.html" title="Slight Variation of the Observer Design Pattern (Subject part).">Subject</a>.  <br /></td></tr>
<tr class="separator:a7006c91bc2893aa7aaa03799820f76dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a168ea0b39ad7121383e357456a02b31e" id="r_a168ea0b39ad7121383e357456a02b31e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classIpopt_1_1DependentResult.html">virtual</a> <a class="el" href="classIpopt_1_1DependentResult.html">void</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classIpopt_1_1Observer.html#a168ea0b39ad7121383e357456a02b31e">ReceiveNotification</a> (<a class="el" href="classIpopt_1_1Observer.html#a828a9e0833e87e84bef75d05bf0a99b8">NotifyType</a> <a class="el" href="classIpopt_1_1DependentResult.html">notify_type</a>, <a class="el" href="classIpopt_1_1DependentResult.html">const</a> <a class="el" href="classIpopt_1_1Subject.html">Subject</a> *<a class="el" href="classIpopt_1_1DependentResult.html">subject</a>)=0</td></tr>
<tr class="memdesc:a168ea0b39ad7121383e357456a02b31e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Derived classes should overload this method to receive the requested notification from attached Subjects.  <br /></td></tr>
<tr class="separator:a168ea0b39ad7121383e357456a02b31e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pri-methods" name="pri-methods"></a>
Private Member Functions</h2></td></tr>
<tr class="memitem:a0623f7b9a2dad45c18d7d67b1b43830e" id="r_a0623f7b9a2dad45c18d7d67b1b43830e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classIpopt_1_1DependentResult.html">void</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classIpopt_1_1Observer.html#a0623f7b9a2dad45c18d7d67b1b43830e">ProcessNotification</a> (<a class="el" href="classIpopt_1_1Observer.html#a828a9e0833e87e84bef75d05bf0a99b8">NotifyType</a> <a class="el" href="classIpopt_1_1DependentResult.html">notify_type</a>, <a class="el" href="classIpopt_1_1DependentResult.html">const</a> <a class="el" href="classIpopt_1_1Subject.html">Subject</a> *<a class="el" href="classIpopt_1_1DependentResult.html">subject</a>)</td></tr>
<tr class="memdesc:a0623f7b9a2dad45c18d7d67b1b43830e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Private Method for Receiving Notification should only be called by the friend class <a class="el" href="classIpopt_1_1Subject.html" title="Slight Variation of the Observer Design Pattern (Subject part).">Subject</a>.  <br /></td></tr>
<tr class="separator:a0623f7b9a2dad45c18d7d67b1b43830e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Default Compiler Generated Methods</div></td></tr>
<tr><td colspan="2"><div class="groupText"><p>(Hidden to avoid implicit creation/calling).</p>
<p>These methods are not implemented and we do not want the compiler to implement them for us, so we declare them private and do not define them. This ensures that they will not be implicitly created/called. </p>
</div></td></tr>
<tr class="memitem:ad9738aa3cbd95c3079a47858c7ef6473" id="r_ad9738aa3cbd95c3079a47858c7ef6473"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classIpopt_1_1Observer.html#ad9738aa3cbd95c3079a47858c7ef6473">Observer</a> (<a class="el" href="classIpopt_1_1DependentResult.html">const</a> <a class="el" href="classIpopt_1_1Observer.html">Observer</a> &amp;)</td></tr>
<tr class="memdesc:ad9738aa3cbd95c3079a47858c7ef6473"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy Constructor.  <br /></td></tr>
<tr class="separator:ad9738aa3cbd95c3079a47858c7ef6473"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a75cd6bfea59b6b4c054e65106d422e8c" id="r_a75cd6bfea59b6b4c054e65106d422e8c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classIpopt_1_1DependentResult.html">void</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classIpopt_1_1Observer.html#a75cd6bfea59b6b4c054e65106d422e8c">operator=</a> (<a class="el" href="classIpopt_1_1DependentResult.html">const</a> <a class="el" href="classIpopt_1_1Observer.html">Observer</a> &amp;)</td></tr>
<tr class="memdesc:a75cd6bfea59b6b4c054e65106d422e8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default Assignment Operator.  <br /></td></tr>
<tr class="separator:a75cd6bfea59b6b4c054e65106d422e8c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pri-attribs" name="pri-attribs"></a>
Private Attributes</h2></td></tr>
<tr class="memitem:a9910eb64060c426e2b9695fec3f98cae" id="r_a9910eb64060c426e2b9695fec3f98cae"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="classIpopt_1_1DependentResult.html">const</a> <a class="el" href="classIpopt_1_1Subject.html">Subject</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classIpopt_1_1Observer.html#a9910eb64060c426e2b9695fec3f98cae">subjects_</a></td></tr>
<tr class="memdesc:a9910eb64060c426e2b9695fec3f98cae"><td class="mdescLeft">&#160;</td><td class="mdescRight">A list of the subjects currently being observed.  <br /></td></tr>
<tr class="separator:a9910eb64060c426e2b9695fec3f98cae"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="friends" name="friends"></a>
Friends</h2></td></tr>
<tr class="memitem:a5daa6be80b3fbc385ac0a0d93ad161d9" id="r_a5daa6be80b3fbc385ac0a0d93ad161d9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classIpopt_1_1DependentResult.html">class</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classIpopt_1_1Observer.html#a5daa6be80b3fbc385ac0a0d93ad161d9">Subject</a></td></tr>
<tr class="separator:a5daa6be80b3fbc385ac0a0d93ad161d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Slight Variation of the <a class="el" href="classIpopt_1_1Observer.html" title="Slight Variation of the Observer Design Pattern.">Observer</a> Design Pattern. </p>
<p>This class implements the <a class="el" href="classIpopt_1_1Observer.html" title="Slight Variation of the Observer Design Pattern.">Observer</a> class of the <a class="el" href="classIpopt_1_1Observer.html" title="Slight Variation of the Observer Design Pattern.">Observer</a> Design Pattern. An <a class="el" href="classIpopt_1_1Observer.html" title="Slight Variation of the Observer Design Pattern.">Observer</a> "Attach"es to a <a class="el" href="classIpopt_1_1Subject.html" title="Slight Variation of the Observer Design Pattern (Subject part).">Subject</a>, indicating that it would like to be notified of changes in the <a class="el" href="classIpopt_1_1Subject.html" title="Slight Variation of the Observer Design Pattern (Subject part).">Subject</a>. Any derived class wishing to receive notifications from a <a class="el" href="classIpopt_1_1Subject.html" title="Slight Variation of the Observer Design Pattern (Subject part).">Subject</a> should inherit off of <a class="el" href="classIpopt_1_1Observer.html" title="Slight Variation of the Observer Design Pattern.">Observer</a> and overload the protected method, ReceiveNotification_(...). </p>

<p class="definition">Definition at line <a class="el" href="IpObserver_8hpp_source.html#l00038">38</a> of file <a class="el" href="IpObserver_8hpp_source.html">IpObserver.hpp</a>.</p>
</div><h2 class="groupheader">Member Enumeration Documentation</h2>
<a id="a828a9e0833e87e84bef75d05bf0a99b8" name="a828a9e0833e87e84bef75d05bf0a99b8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a828a9e0833e87e84bef75d05bf0a99b8">&#9670;&#160;</a></span>NotifyType</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classIpopt_1_1DependentResult.html">enum</a> <a class="el" href="classIpopt_1_1Observer.html#a828a9e0833e87e84bef75d05bf0a99b8">Ipopt::Observer::NotifyType</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Enumeration specifying the type of notification. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a828a9e0833e87e84bef75d05bf0a99b8aa99f42cc1404f26f7261dd53de56ff74" name="a828a9e0833e87e84bef75d05bf0a99b8aa99f42cc1404f26f7261dd53de56ff74"></a>NT_All&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="a828a9e0833e87e84bef75d05bf0a99b8a8ad0ad9fd7b8b6ac8d26ba3f4a9b5cae" name="a828a9e0833e87e84bef75d05bf0a99b8a8ad0ad9fd7b8b6ac8d26ba3f4a9b5cae"></a>NT_BeingDestroyed&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="a828a9e0833e87e84bef75d05bf0a99b8a54af38bcdf18596ba847cbacd9232614" name="a828a9e0833e87e84bef75d05bf0a99b8a54af38bcdf18596ba847cbacd9232614"></a>NT_Changed&#160;</td><td class="fielddoc"></td></tr>
</table>

<p class="definition">Definition at line <a class="el" href="IpObserver_8hpp_source.html#l00057">57</a> of file <a class="el" href="IpObserver_8hpp_source.html">IpObserver.hpp</a>.</p>

</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="acdd5593467a6a60be9ca42516766b3d9" name="acdd5593467a6a60be9ca42516766b3d9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acdd5593467a6a60be9ca42516766b3d9">&#9670;&#160;</a></span>Observer() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">Ipopt::Observer::Observer </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Default Constructor. </p>

<p class="definition">Definition at line <a class="el" href="IpObserver_8hpp_source.html#l00048">48</a> of file <a class="el" href="IpObserver_8hpp_source.html">IpObserver.hpp</a>.</p>

</div>
</div>
<a id="a6f33850447e2d64a0b1521d10924fb40" name="a6f33850447e2d64a0b1521d10924fb40"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6f33850447e2d64a0b1521d10924fb40">&#9670;&#160;</a></span>~Observer()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">Ipopt::Observer::~Observer </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Destructor. </p>

<p class="definition">Definition at line <a class="el" href="IpObserver_8hpp_source.html#l00230">230</a> of file <a class="el" href="IpObserver_8hpp_source.html">IpObserver.hpp</a>.</p>

</div>
</div>
<a id="ad9738aa3cbd95c3079a47858c7ef6473" name="ad9738aa3cbd95c3079a47858c7ef6473"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad9738aa3cbd95c3079a47858c7ef6473">&#9670;&#160;</a></span>Observer() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">Ipopt::Observer::Observer </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classIpopt_1_1DependentResult.html">const</a> <a class="el" href="classIpopt_1_1Observer.html">Observer</a> &amp;&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Copy Constructor. </p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="ad8a27925a917ba926d713ceaac3efd7d" name="ad8a27925a917ba926d713ceaac3efd7d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad8a27925a917ba926d713ceaac3efd7d">&#9670;&#160;</a></span>RequestAttach()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classIpopt_1_1DependentResult.html">void</a> Ipopt::Observer::RequestAttach </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classIpopt_1_1Observer.html#a828a9e0833e87e84bef75d05bf0a99b8">NotifyType</a>&#160;</td>
          <td class="paramname"><em>notify_type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classIpopt_1_1DependentResult.html">const</a> <a class="el" href="classIpopt_1_1Subject.html">Subject</a> *&#160;</td>
          <td class="paramname"><em>subject</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Derived classes should call this method to request an "Attach" to a <a class="el" href="classIpopt_1_1Subject.html" title="Slight Variation of the Observer Design Pattern (Subject part).">Subject</a>. </p>
<p>Do not call "Attach" explicitly on the <a class="el" href="classIpopt_1_1Subject.html" title="Slight Variation of the Observer Design Pattern (Subject part).">Subject</a> since further processing is done here </p>

<p class="definition">Definition at line <a class="el" href="IpObserver_8hpp_source.html#l00254">254</a> of file <a class="el" href="IpObserver_8hpp_source.html">IpObserver.hpp</a>.</p>

</div>
</div>
<a id="a7006c91bc2893aa7aaa03799820f76dd" name="a7006c91bc2893aa7aaa03799820f76dd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7006c91bc2893aa7aaa03799820f76dd">&#9670;&#160;</a></span>RequestDetach()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classIpopt_1_1DependentResult.html">void</a> Ipopt::Observer::RequestDetach </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classIpopt_1_1Observer.html#a828a9e0833e87e84bef75d05bf0a99b8">NotifyType</a>&#160;</td>
          <td class="paramname"><em>notify_type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classIpopt_1_1DependentResult.html">const</a> <a class="el" href="classIpopt_1_1Subject.html">Subject</a> *&#160;</td>
          <td class="paramname"><em>subject</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Derived classes should call this method to request a "Detach" to a <a class="el" href="classIpopt_1_1Subject.html" title="Slight Variation of the Observer Design Pattern (Subject part).">Subject</a>. </p>
<p>Do not call "Detach" explicitly on the <a class="el" href="classIpopt_1_1Subject.html" title="Slight Variation of the Observer Design Pattern (Subject part).">Subject</a> since further processing is done here </p>

<p class="definition">Definition at line <a class="el" href="IpObserver_8hpp_source.html#l00276">276</a> of file <a class="el" href="IpObserver_8hpp_source.html">IpObserver.hpp</a>.</p>

</div>
</div>
<a id="a168ea0b39ad7121383e357456a02b31e" name="a168ea0b39ad7121383e357456a02b31e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a168ea0b39ad7121383e357456a02b31e">&#9670;&#160;</a></span>ReceiveNotification()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classIpopt_1_1DependentResult.html">virtual</a> <a class="el" href="classIpopt_1_1DependentResult.html">void</a> Ipopt::Observer::ReceiveNotification </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classIpopt_1_1Observer.html#a828a9e0833e87e84bef75d05bf0a99b8">NotifyType</a>&#160;</td>
          <td class="paramname"><em>notify_type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classIpopt_1_1DependentResult.html">const</a> <a class="el" href="classIpopt_1_1Subject.html">Subject</a> *&#160;</td>
          <td class="paramname"><em>subject</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Derived classes should overload this method to receive the requested notification from attached Subjects. </p>

<p>Implemented in <a class="el" href="classIpopt_1_1DependentResult.html#a7c214391027ab63ef7aa2aea7e013d6c">Ipopt::DependentResult&lt; T &gt;</a>.</p>

</div>
</div>
<a id="a75cd6bfea59b6b4c054e65106d422e8c" name="a75cd6bfea59b6b4c054e65106d422e8c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a75cd6bfea59b6b4c054e65106d422e8c">&#9670;&#160;</a></span>operator=()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classIpopt_1_1DependentResult.html">void</a> Ipopt::Observer::operator= </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classIpopt_1_1DependentResult.html">const</a> <a class="el" href="classIpopt_1_1Observer.html">Observer</a> &amp;&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Default Assignment Operator. </p>

</div>
</div>
<a id="a0623f7b9a2dad45c18d7d67b1b43830e" name="a0623f7b9a2dad45c18d7d67b1b43830e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0623f7b9a2dad45c18d7d67b1b43830e">&#9670;&#160;</a></span>ProcessNotification()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classIpopt_1_1DependentResult.html">void</a> Ipopt::Observer::ProcessNotification </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classIpopt_1_1Observer.html#a828a9e0833e87e84bef75d05bf0a99b8">NotifyType</a>&#160;</td>
          <td class="paramname"><em>notify_type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classIpopt_1_1DependentResult.html">const</a> <a class="el" href="classIpopt_1_1Subject.html">Subject</a> *&#160;</td>
          <td class="paramname"><em>subject</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Private Method for Receiving Notification should only be called by the friend class <a class="el" href="classIpopt_1_1Subject.html" title="Slight Variation of the Observer Design Pattern (Subject part).">Subject</a>. </p>
<p>This method will, in turn, call the overloaded ReceiveNotification method for the derived class to process. </p>

<p class="definition">Definition at line <a class="el" href="IpObserver_8hpp_source.html#l00311">311</a> of file <a class="el" href="IpObserver_8hpp_source.html">IpObserver.hpp</a>.</p>

</div>
</div>
<h2 class="groupheader">Friends And Related Symbol Documentation</h2>
<a id="a5daa6be80b3fbc385ac0a0d93ad161d9" name="a5daa6be80b3fbc385ac0a0d93ad161d9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5daa6be80b3fbc385ac0a0d93ad161d9">&#9670;&#160;</a></span>Subject</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classIpopt_1_1DependentResult.html">friend</a> <a class="el" href="classIpopt_1_1DependentResult.html">class</a> <a class="el" href="classIpopt_1_1Subject.html">Subject</a></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">friend</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="IpObserver_8hpp_source.html#l00137">137</a> of file <a class="el" href="IpObserver_8hpp_source.html">IpObserver.hpp</a>.</p>

</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="a9910eb64060c426e2b9695fec3f98cae" name="a9910eb64060c426e2b9695fec3f98cae"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9910eb64060c426e2b9695fec3f98cae">&#9670;&#160;</a></span>subjects_</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt;<a class="el" href="classIpopt_1_1DependentResult.html">const</a> <a class="el" href="classIpopt_1_1Subject.html">Subject</a>*&gt; Ipopt::Observer::subjects_</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>A list of the subjects currently being observed. </p>

<p class="definition">Definition at line <a class="el" href="IpObserver_8hpp_source.html#l00121">121</a> of file <a class="el" href="IpObserver_8hpp_source.html">IpObserver.hpp</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>src/Common/<a class="el" href="IpObserver_8hpp_source.html">IpObserver.hpp</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
</body>
</html>
